package gff.actions;



import gff.bsn.CargaArchivoBsn;
import gff.constantes.Constantes;
import gff.forms.LayoutForm;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;

public class CargaConcentradoAction extends DispatchAction {
	
	
	private static final Logger log = Logger.getLogger(CargaConcentradoAction.class);

	
	public ActionForward inicio(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		log.info(" CargaConcentradoAction Metodo: inicio  ");
		ActionForward forward = new ActionForward();

		String ruta ="cargasMenu";

		forward = mapping.findForward(ruta);
		
		return forward;
	}
	
	public ActionForward respuesta(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		log.info("Entro a LayoutAction.respuesta");
		
		ActionErrors errores = new ActionErrors();
		CargaArchivoBsn layOutBsn = new CargaArchivoBsn();
		LayoutForm forma = (LayoutForm)form;
		StringBuilder mensajeError = new StringBuilder();
		String forward = "cargasMenu";

		boolean inner = false;
				
		FormFile archivo = forma.getArchivo();
		
		try{

		
			if(archivo != null){
				
				if( forma.getArchivo().getFileName().toLowerCase().endsWith(Constantes.EXTENSION_XLS) ){
					mensajeError = layOutBsn.guardaArchivoRespuestaLayOut( forma.getArchivo() );//archivoExcell
					inner = true;
				}
//				else{
//					mensajeError = layOutBsn.guardaArchivoRespuestaLayOut2007( forma.getArchivo(), userVO );//archivoExcell xlsx
//					inner = true;
//				}
//								
				if( !mensajeError.toString().trim().equals("") ){
					request.setAttribute(Constantes.ATRIBUTO_MENSAJE_ERROR_GUARDADO_LAYOUT,mensajeError);
				}else if(inner){
					request.setAttribute(Constantes.ATRIBUTO_MENSAJE_ERROR_GUARDADO_LAYOUT,"Los resultado de la carga de concentrados se han guardado correctamente.");
				}
				
				forma.setArchivo(null);
			}
		}catch(Exception e){
			log.error(e);
			errores.add("navigate", new ActionError("error", "Error en LayoutAction.getLayout."));
		}
				
		log.info("Salio de LayoutAction.respuesta");
//		
		return mapping.findForward(forward);
		
	}
	

	
	
}
